from rest_framework import serializers

from .models import Area


class AreaSerializer(serializers.ModelSerializer):
    """
    如果查询所有省时,它代表省的序列化器
    如果查询单个省,它代表的是省类名的一个一个市
    如果查询单个市,它代表的是市里面的一个一个区
    """
    class Meta:
        model = Area
        fields = ['id', 'name']


class SubsAreaSerializer(serializers.ModelSerializer):
    """
    此序列化器只有在查询单一视图时才会使用
    如果查省时,此序列化器代表省,subs中为省下面的所有市
    如果查市时,此序列化器代表市,subs中为市下面的所有区县
    """
    subs = AreaSerializer(read_only=True, many=True)

    class Meta:
        model = Area
        fields = ['id', 'name', 'subs']

